import java.util.ArrayList;
import java.util.ListIterator;

/**
* CellaElem absztrakt osztaly leszarmazottja, amit a kincskereso
* kepes a palyan felvenni. Amikor a kincskereso felveszi a bomba aktivalodik.  Innentol kezdve
* a kincskereso  el tudja helyezni olyan cellab, ami ures. Robbanaskor a szomszedos cellak is uresse valnak.
*/




public class Bomba extends CellaElem
{
    private boolean isAktiv;
    private int szamlalo;
    private int intenzitas;

    Bomba(){
			isAktiv=false;
			szamlalo=5;
			intenzitas=5;
			Szkeleton.Message("Bomba letrejott..");
	}
	/**
	* Bombaval valo utkozes eseten odalephet-e.
	*
	* @return boolean
	* @param x
	*/
    public boolean ralephete(CellaElem x)
    {
		Szkeleton.Start("Bomba", "ralephete");
		Visitor v = x.createVisitor();
		Szkeleton.Finish("Bomba", "ralephete");
		return(v.utkozik(this));
    
    }
	
    /**
	* Bomba allapotanak beallitasa.
	*
	* @param b
	*/
    public void setAllapot(Boolean b)
    {
    
    }
	
    /**
	* Bomba allapotanak kinyerese.
	*
	* @return boolean
	*/
    public boolean getAllapot()
    {
		Szkeleton.Start("Bomba", "getAllapot");
		Szkeleton.Finish("Bomba", "getAllapot");
		return isAktiv;
    }
    
    public void robban()
    {
    	ArrayList szomszed = this.mezo.getSzomszed();
    	ListIterator i = szomszed.listIterator();
    	while(i.hasNext()) {
    		((Cella)i.next()).cellabanLevo.meghal();
    	}
    }
    
	/**
	* Bomba intenzitasanak lekerdezese.
	*
	* @return int
	*/
    public int getIntenzitas()
    {
		Szkeleton.Start("Bomba", "getIntenzitas");
		Szkeleton.Finish("Bomba", "getIntenzitas");
		return intenzitas;
    
    }
	
    /**
	* Csokkenti a szamlalot.
	*/
    public void csokkentSz()
    {
    
    }
	
    /**
	* Utkozest lebonyolitasat inditja el.
	*
	* @return Visitor
	*/
   	
	public Visitor createVisitor() {
		Szkeleton.Start("Bomba", "createVisitor");
		BombaUtkozik bv = new BombaUtkozik(this);
		Szkeleton.Finish("Bomba", "createVisitor");
		return bv;
	}
}
